home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / baswind.arc / BASWIND.MRG < prev    next >
Text File  |  1985-10-03  |  3KB  |  61 lines

  1. 55000 '************************** WINDOW SUBROUTINE ****************************
  2. 55010 IF GROW=0 THEN GOSUB 55170:GOTO 55150
  3. 55020 '-------------------- Growing Window Module ------------------------------
  4. 55030 SHADOW=0
  5. 55040 X1%=ULC+INT((LRC-ULC)/2)
  6. 55050 X2%=LRC-INT((LRC-ULC)/2)
  7. 55060 Y1%=ULR+INT((LRR-ULR)/2)
  8. 55070 Y2%=LRR-INT((LRR-ULR)/2)
  9. 55080 IF X1%>ULC THEN X1%=X1%-3:IF X1%<ULC THEN X1%=ULC
  10. 55090 IF X2%<LRC THEN X2%=X2%+3:IF X2%>LRC THEN X2%=LRC
  11. 55100 IF Y1%>ULR THEN Y1%=Y1%-1
  12. 55110 IF Y2%<LRR THEN Y2%=Y2%+1
  13. 55120 GOSUB 55180
  14. 55130 IF (X1%=ULC) AND (X2%=LRC) AND (Y1%=ULR) AND Y2%=(LRR) THEN 55140 ELSE 55080
  15. 55140 GROW=0
  16. 55150 RETURN :'<<=== SUBROUTINE EXIT POINT
  17. 55160 '------------------- Regular Window Module -------------------------------
  18. 55170 X1%=ULC:X2%=LRC:Y1%=ULR:Y2%=LRR
  19. 55180 PAGE%=0:ATTR%=(BACK AND 7)*16+FORE
  20. 55190 ON FRAME GOSUB 55400,55450,55500,55550
  21. 55200 IF LABEL$="" OR LEN(LABEL$)>(LEN(TOP$)-5) THEN 55230
  22. 55210 MID$(TOP$,2)="["+LABEL$+"]"
  23. 55220 '---------------------------- Shadow Module ------------------------------
  24. 55230 IF SHADOW=0 THEN 55300
  25. 55240 COL%=X1%-3:DAT$=STRING$((X2%-X1%)+3,32):BLACK%=0
  26. 55250 FOR I%=Y1% TO (Y2%+2)
  27. 55260 ROW%=I%:CALL XQPRINT(DAT$,ROW%,COL%,BLACK%,PAGE%)
  28. 55270 NEXT I%
  29. 55280 SHADOW=0
  30. 55290 '------------------------ Produce Window Module --------------------------
  31. 55300 ROW%=Y1%-1:COL%=X1%-1
  32. 55310 CALL XQPRINT(TOP$,ROW%,COL%,ATTR%,PAGE%)
  33. 55320 FOR I%=Y1% TO Y2%
  34. 55330 ROW%=I%:COL%=X1%-1
  35. 55340 CALL XQPRINT(MIDL$,ROW%,COL%,ATTR%,PAGE%)
  36. 55350 NEXT I%
  37. 55360 ROW%=Y2%+1:COL%=X1%-1
  38. 55370 CALL XQPRINT(BOTTM$,ROW%,COL%,ATTR%,PAGE%)
  39. 55380 RETURN
  40. 55390 '----------------------- Single Line Frame -------------------------------
  41. 55400 TOP$=CHR$(218)+STRING$((X2%-X1%)+1,196)+CHR$(191)
  42. 55410 MIDL$=CHR$(179)+STRING$((X2%-X1%)+1,32)+CHR$(179)
  43. 55420 BOTTM$=CHR$(192)+STRING$((X2%-X1%)+1,196)+CHR$(217)
  44. 55430 RETURN
  45. 55440 '----------------------- Double Line Frame -------------------------------
  46. 55450 TOP$=CHR$(201)+STRING$((X2%-X1%)+1,205)+CHR$(187)
  47. 55460 MIDL$=CHR$(186)+STRING$((X2%-X1%)+1,32)+CHR$(186)
  48. 55470 BOTTM$=CHR$(200)+STRING$((X2%-X1%)+1,205)+CHR$(188)
  49. 55480 RETURN
  50. 55490 '------------- Double Vertical, Single Horizontal Line Frame -------------
  51. 55500 TOP$=CHR$(214)+STRING$((X2%-X1%)+1,196)+CHR$(183)
  52. 55510 MIDL$=CHR$(186)+STRING$((X2%-X1%)+1,32)+CHR$(186)
  53. 55520 BOTTM$=CHR$(211)+STRING$((X2%-X1%)+1,196)+CHR$(189)
  54. 55530 RETURN
  55. 55540 '------------- Double Horizontal, Single Vertical Line Frame -------------
  56. 55550 TOP$=CHR$(213)+STRING$((X2%-X1%)+1,205)+CHR$(184)
  57. 55560 MIDL$=CHR$(179)+STRING$((X2%-X1%)+1,32)+CHR$(179)
  58. 55570 BOTTM$=CHR$(212)+STRING$((X2%-X1%)+1,205)+CHR$(190)
  59. 55580 RETURN
  60. 55590 '********************* END OF WINDOW SUBROUTINE **************************
  61. G$((X2%